package cn.com.aiton.common.utils;

import org.json.JSONArray;
import org.json.JSONException;

import java.util.ArrayList;
import java.util.List;

public class StageUtils {

    /**
     *  将List相位数组转换成Int32 位的数字
     *  32位中，低位0 备用 ，低位1开始为相位1 ，低位2为相位2 ........
     * @param list
     * @return
     */
    public static int listToInt(List<Integer> list){
        int i = 0;
        for(int j:list){
            i = i | (1<<(j-1));
        }
        return i;
    }

    /**
     * 公司的android系统下，trafficlite 项目使用这个方法
     * @param list
     * @return
     */
    public static int listToIntForAndroid(List<Integer> list){
        int i = 0;
        for(int j = 0;j<list.size();j++){
            if (list.get(j) == 1)
                i = i | (1<<(j));
        }
        return i;
    }
    /**
     * 信号机Stage对象中，AllowPhase字段
     * Web端 JSON 数据组，转换成List数组
     *
     * @param array
     * @return
     * @throws JSONException
     */
    public static List<Integer> objectToList(JSONArray array) throws JSONException {
        List<Integer> list = new ArrayList<>();
        for(int i=0;i<array.length();i++){
            list.add(array.getInt(i));
        }
        return list;
    }
}
